package com.zx._10_设计模式.创建型模式.工厂模式;

import com.zx._10_设计模式.创建型模式.工厂模式.model.BaoMa;
import com.zx._10_设计模式.创建型模式.工厂模式.model.BenChi;
import com.zx._10_设计模式.创建型模式.工厂模式.model.Car;

/**
 * 抽象工厂：使用不用的工厂，生产具有相同特点的，每个工厂只生产一种
 * 可以配置策略模式实现不要需求下获得不同的bean
 */
public class Factory3 {

    public static void main(String[] args) {
        Car baoMa = new BaoMaFactory().getInstance();
        Car benChi = new BenChiFactory().getInstance();

        baoMa.run();
        benChi.run();
    }

    private static interface CarFactory {

        Car getInstance();
    }


    private static class BaoMaFactory implements CarFactory {

        @Override
        public Car getInstance() {
            return new BaoMa();
        }
    }

    private static class BenChiFactory implements CarFactory {

        @Override
        public Car getInstance() {
            return new BenChi();
        }
    }
}
